package pers.whj.rpc.serialize;

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;

public class DecoderImpl implements Decoder {
    static Kryo kryo = new Kryo();

    /**
     * json反序列化
     *
     * @param data  数组
     * @param clazz 类型
     * @param <T>   类型
     * @return 对象
     */
    @Override
    @SuppressWarnings({"unchecked"})
    public <T> T decode(byte[] data, Class<T> clazz) {
        Input input = new Input(data);
        Object obj = kryo.readClassAndObject(input);
        input.close();
        return (T) obj;
    }
}
